package main

import (
  "fmt"
  cron "github.com/robfig/cron/v3"
  "github.com/jinzhu/gorm"
  _ "github.com/jinzhu/gorm/dialects/mysql"
  "time"
)

var err error
var db *gorm.DB

type Blog struct{
	Id int `orm:"pk;auto"`
	Name string 
	CreatedAt time.Time
  UpdatedAt time.Time
	//BlogType *BlogType `orm:"rel(fk)"`
}

func main() {
  
  db, err = gorm.Open("mysql", "root:new_password@tcp(localhost:3306)/task_blog")
	if err != nil {
		panic("failed to connect database")
	}
	defer db.Close()
	db.AutoMigrate(&Blog{})

  crontab := cron.New()
  task := func() {
    var b Blog
    //b.Id = 2
    b.Name = "Co channel pool"
    db.Create(&b)
    fmt.Println("hello world")
  }
  // 添加定时任务, * * * * * 是 crontab,表示每分钟执行一次
  crontab.AddFunc("* * * * *", task)
  // 启动定时器
  crontab.Start()
  // 定时任务是另起协程执行的,这里使用 select 简答阻塞.实际开发中需要
  // 根据实际情况进行控制
  select {}
}